18. 移动函数
移动函数
Question:
Start Quiz:
#Program a function that returns a new distribution
#q, shifted to the right by U units. If U=0, q should
#be the same as p.
p=[0, 1, 0, 0, 0]
world=['green', 'red', 'red', 'green', 'green']
measurements = ['red', 'green']
pHit = 0.6
pMiss = 0.2
def sense(p, Z):
q=[]
for i in range(len(p)):
hit = (Z == world[i])
q.append(p[i] * (hit * pHit + (1-hit) * pMiss))
s = sum(q)
for i in range(len(q)):
q[i] = q[i] / s
return q
def move(p, U):
#
#ADD CODE HERE
#
return q
print move(p, 1)
Solution:
INSTRUCTOR NOTE:
替代解法:
U = U % len(p)
q = p[-U:] + p[:-U]